package controladores;

import interfaces.webInterface;
import beans.*;
import excepciones.ProductoException;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.List;


public class Controlador implements webInterface {


	static webInterface resto;
	
	public Controlador(){
		 conectar();
	}
	public static void main(String[] args) {
		new Controlador();
	}
	public  void conectar(){
		try {
			resto = (webInterface)Naming.lookup ("//localhost/sucursalWeb");			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		}
	}
	
	
	
	
	public List<Mozo> MozosList() throws RemoteException{
			return resto.MozosList();
		
	}	
	
	public Mozo getMozo(int id) throws RemoteException{
			return resto.getMozo(id);
	}
	
	public void cerrarCaja(float totalEfectivoCaja,int sucursalId) throws RemoteException{		
		 resto.cerrarCaja(totalEfectivoCaja,sucursalId);	
	}
	
	public List<Comision> comisionMozosList() throws RemoteException {
			return resto.comisionMozosList();
	}
	
	
	@Override
	public int abrirMesa(int nroMesa, int cantPersonas, int idMozo) throws RemoteException {
		return resto.abrirMesa(nroMesa, cantPersonas, idMozo);
		
	}
	@Override
	public void cerrarMesa(int nroMesa) throws RemoteException {
		resto.cerrarMesa(nroMesa);
	}
	
	@Override
	public void solicitarInsumosAdministracion(  ) throws RemoteException {
		resto.solicitarInsumosAdministracion( );
	}
	
	@Override
	 public List< Compra > listaReposicionInsumosSucursal ( ) throws RemoteException{
		return resto.listaReposicionInsumosSucursal();
	}
	

	public Producto obtenerProductoXNombre(String nombreProd) throws RemoteException, ProductoException {
			return resto.obtenerProductoXNombre(nombreProd);
	}
	
	@Override
	public Usuario usuarioValido(String nombre, String clave)throws RemoteException{
		return resto.usuarioValido(nombre, clave);
	}
	@Override
	public void registrarComisionesMozos() throws RemoteException{
		 resto.comisionMozosList();
	}
	
	
	
	@Override
	public List<Mozo> mozosList() throws RemoteException {
		return resto.MozosList();
	}
	
	@Override
	public List<Sucursal> sucursalesList() throws RemoteException {
		return resto.sucursalesList();
	}
	
	@Override
	public List<Producto> productosList() throws RemoteException {
		return (List<Producto>) resto.productosList();
	}
	@Override
	public List<Mesa> mesasList() throws RemoteException {
		return resto.mesasList();
	}
	@Override
	public List<Object[]> platosList(String rubro) throws RemoteException {
		return resto.platosList( rubro);
	}
	@Override
	public List<Usuario> usuariosList() throws RemoteException {
		return resto.usuariosList();
	}
	@Override
	public List<Object[]> comandasList(String Rubro) throws RemoteException {
		return resto.comandasList(Rubro);
	}
	@Override
	public Object[] getComanda(int id) throws RemoteException {
		return resto.getComanda(id);
	}
	
	@Override
	public List<Compra> obtenerCompras () throws RemoteException
	{
		List<Compra> compras = resto.obtenerCompras();
		return compras;
	}
	
	@Override
	public void cargarComanda(List<Object[]>os,int ddlMozo,int nroMesa) throws RemoteException {
		resto.cargarComanda(os, ddlMozo, nroMesa);
		
	}
	
	@Override
	public List<Object[]> planesProdList() throws RemoteException
	{
		return resto.planesProdList();
	}
	
	public List<Object[]> obtenerProductosObject() throws RemoteException
	{
		return resto.obtenerProductosObject();
	}
	
	public List<Object[]> obtenerRecetasObject() throws RemoteException
	{
		return resto.obtenerRecetasObject();
	}
	@Override
	public void crearPlanProduccion(List<Object[]> os) throws RemoteException 
	{
		resto.crearPlanProduccion(os);
	}
	
}
